package com.springai.demo.tools;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.ai.tool.annotation.Tool;
import org.springframework.ai.tool.annotation.ToolParam;

import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

/**
 * @author hh
 * @since 2025/7/20
 */
public class TimeTools {

    private static final Logger log = LoggerFactory.getLogger(TimeTools.class);

    /**
     * 定义方法工具时，可以通过 @Tool 注解的 resultConverter 参数提供 ToolCallResultConverter 的实现类；
     * 定义方法工具和函数工具时可以通过 MethodToolCallBack.Builder 和 FunctionToolCallBack.Builder 的 resultConverter() 方法设置ToolCallResultConverter 的实现类。
     */
    @Tool(description = "Get time by zone id")
    public String getTimeByZoneId(@ToolParam(description = "ime zone id, such as Asia/Shanghai") String zoneId) {
        log.info("执行getTimeByZoneId 工具方法");
        ZoneId zId = ZoneId.of(zoneId);
        ZonedDateTime zonedDateTime = ZonedDateTime.now(zId);
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        return zonedDateTime.format(dateTimeFormatter);
    }

}
